package com.seadragon.app.ksr.service;

import java.util.List;

import com.seadragon.app.ksr.model.Address;
import com.seadragon.app.ksr.model.SearchParams;
import com.seadragon.app.ksr.model.SearchResult;
import com.seadragon.app.ksr.model.tiger.County;
import com.seadragon.app.ksr.model.tiger.Place;
import com.seadragon.app.ksr.model.tiger.State;
import com.seadragon.app.ksr.model.tiger.Zip;

public interface SearchService {
	SearchResult search(SearchParams params);
	List<State> searchNeighborsByState(String stateGeoid);
	List<County> searchNeighborsByCounty(String countyGeoid);
	List<Place> searchNeighborsByPlace(String placeGeoid);
	List<Zip> searchNeighborsByZip(String zipGeoid);
	State searchStateById(String stateId);
	State searchStateByStusps(String stusps);
	State searchStateByLocation(double lat, double lon);
	County searchCountyByLocation(double lat, double lon);
	County searchCountyById(String countyId);
	Address searchAddress(Address address);
	Place searchPlaceByPlaceAndState(String placeName, String stusps);
	County searchCountyByCountyAndState(String countyName, String stusps);
	void reindexOffice();
	void reindexAddress();
}